#pragma once

#include "iostream"
#include "vector"
#include "algorithm"

using namespace std;
/*HJJ QQ479287006
 *https://leetcode.cn/problems/merge-two-sorted-lists/submissions/
 * 合并链表
 * */
//递归解法
// 返回合并后的头结点
ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
    if(list1==nullptr)
        return list2;//注意返回对方
    if(list2==nullptr)
        return list1;//注意返回对方

    if(list1->val<=list2->val){
        list1->next=  mergeTwoLists(list1->next,list2);
        return list1;
    }else{
        list2->next=  mergeTwoLists(list1,list2->next);
        return list2;
    }

    return list1->val<=list2->val ?  list1 :list2;
}

ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
    if(list1==nullptr)
        return list2;//注意返回对方
    if(list2==nullptr)
        return list1;//注意返回对方
    //非递归

























}

